<!--
 * @Description: 描述信息
 * @Version: 版本号
 * @Author: xuebao
 * @Date: 2023-12-04 16:09:10
 * @LastEditors: renmengxue
 * @LastEditTime: 2023-12-08 15:04:19
-->
<template>
  <nav class="navbar navbar-dark bg-primary justify-content-between mb-4 px-4">
    <router-link to="/">
      <a class="navbar-brand" href="#">者也专栏</a>
    </router-link>
    <!-- 默认是false -->
    <ul v-if="!isLogin" class="list-inline mb-0">
      <li class="list-inline-item">
        <router-link to="/login" class="btn btn-outline-light my-2">登陆</router-link>
      </li>
      <li class="list-inline-item">
        <router-link to="/signup" class="btn btn-outline-light my-2">注册</router-link>
      </li>
    </ul>
    <ul v-else-if="isLogin && data" class="list-inline mb-0">
      <li class="list-inline-item">
        <DropDown :title="`你好 ${data.nickName}`">
          <DropDownItem>
            <router-link to="/crate" class="dropdown-item">新建文章</router-link>
          </DropDownItem>
          <DropDownItem><router-link :to="`/column/${data.column}`" class="dropdown-item">我的专栏</router-link>
          </DropDownItem>
          <DropDownItem :disabled="true"> <a href="#" class="dropdown-item">编辑资料</a></DropDownItem>
          <DropDownItem> <a href="#" class="dropdown-item" @click.prevent="handleLogout">退出登录</a></DropDownItem>
        </DropDown>
      </li>
    </ul>
  </nav>
</template>

<script lang="ts">
import { defineComponent, PropType } from 'vue'
import DropDown from './DropDown.vue'
import DropDownItem from './DropDownItem.vue'
import { useStore } from 'vuex'
import { useRouter } from 'vue-router'
import { UserDataProps, useUserStore } from '@/store/user'
import createMessage from '../components/CreateMessage'
export default defineComponent({
  name: 'GlobalHeader',
  components: {
    DropDown,
    DropDownItem
  },
  props: {
    data: {
      type: Object as PropType<UserDataProps | null>,
      required: true
    },
    isLogin: {
      type: Boolean,
      default: true
    }
  },
  setup() {
    const userStore = useUserStore()
    const store = useStore()
    const router = useRouter()
    const handleLogout = () => {
      // store.commit('logout')
      userStore.logout()
      createMessage('退出登录成功，2秒后跳转到首页', 'success', 2000)
      setTimeout(() => {
        router.push('/')
      }, 2000)
    }
    return {
      handleLogout
    }
  }
})
</script>
